package com.cgnpc.scp.hse.service;

import com.cgnpc.cud.core.domain.AjaxResult;
import com.cgnpc.scp.common.bean.MyPageResult;
import com.cgnpc.scp.common.pojo.UserInfo;
import com.cgnpc.scp.hse.mybatis.entity.HseMeetingUser;

import java.util.List;
import java.util.Locale;

/******************************
 * 用途说明: 调试HSE管理-会议信息-参会人员
 * 作者姓名: yblrs
 * 创建时间: 2020/8/20 21:26
 ******************************/
public interface IHseMeetingUserService {

    /**********************************
     * 用途说明: 调试HSE管理-会议信息-参会人员---分页查询
     * 参数说明: T reqEntity
     * 返回值说明: MyPageResult
     ***********************************/
    <T extends HseMeetingUser> MyPageResult<T> loadByPaging(T reqEntity);

    /**********************************
     * 用途说明: 调试HSE管理-会议信息-参会人员---保存或修改
     * 参数说明: UserInfo loginUserInfo, Locale reqLocale, String meetingInfoId, List<T> reqEntityList
     * 返回值说明: AjaxResult
     ***********************************/
    <T extends HseMeetingUser> AjaxResult saveOrUpdate(UserInfo loginUserInfo, Locale reqLocale, String meetingInfoId, List<T> reqEntityList);

    /**********************************
     * 用途说明: 调试HSE管理-会议信息-参会人员---根据会议id查询参会人员信息
     * 参数说明: String reqMeetingInfoId
     * 返回值说明: List<T>
     ***********************************/
    <T extends HseMeetingUser> List<T> queryByMeetingInfoId(String reqMeetingInfoId);

    /**********************************
     * 用途说明: 调试HSE管理-会议信息-参会人员---根据会议id查询参会人员信息
     * 参数说明: String reqMeetingInfoId
     * 返回值说明: List<T>
     ***********************************/
    <T extends HseMeetingUser> List<T> queryByMeetingInfoIdShow(String reqMeetingInfoId);

    /**********************************
     * 用途说明: 调试HSE管理-会议信息-参会人员---根据会议id删除参会人员信息
     * 参数说明: List<String> reqMeetingInfoIdList
     * 返回值说明: AjaxResult
     ***********************************/
    <T extends HseMeetingUser> AjaxResult deleteById(List<String> reqMeetingInfoIdList);

    /**********************************
     * 用途说明: 调试HSE管理-会议信息-参会人员---签到
     * 参数说明: UserInfo loginUserInfo, Locale reqLocale, T reqEntity
     * 返回值说明: AjaxResult
     ***********************************/
    <T extends HseMeetingUser> AjaxResult signIn(UserInfo loginUserInfo, Locale reqLocale, T reqEntity);

    /**********************************
     * 用途说明: 调试HSE管理-会议信息-参会人员---查询需要发送短信的人员信息
     * 参数说明: int pageNum, int pageSize
     * 返回值说明: List<T>
     ***********************************/
    <T extends HseMeetingUser> List<T> queryNeedSendSms(int pageNum, int pageSize);

    /**********************************
     * 用途说明: 调试HSE管理-会议信息-参会人员---根据会议id，人员id查询参会信息
     * 参数说明: String hseMeetingInfoId, String meetingUserId
     * 返回值说明: List<T>
     ***********************************/
    <T extends HseMeetingUser> List<T> loadByMeetingInfoIdAndUserId(String hseMeetingInfoId, String meetingUserId);
}
